public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport()
        {
            TempoRegiRyousyuusyo_Receipt rpt = new TempoRegiRyousyuusyo_Receipt();

            rpt.Site = this.Site;
            return(rpt);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// レシート出力
        /// </summary>
        /// <param name="data">データ</param>
        private void OutputReceipt(DataTable data)
        {
            var receiptDataSet = new Receipt_DataSet();

            for (var index = 0; index < data.Rows.Count; index++)
            {
                var row = data.Rows[index];

                if (string.IsNullOrWhiteSpace(ConvertDateTime(row["IssueDateTime"], false)))
                {
                    // 発行日時がないデータは出力対象外
                    continue;
                }

                // 共通データ
                var salesNO           = Convert.ToString(row["SalesNO"]);                   // 売上番号
                var storeReceiptPrint = Convert.ToString(row["StoreReceiptPrint"]);         // 店舗レシート表記
                var staffReceiptPrint = Convert.ToString(row["StaffReceiptPrint"]);         // 担当レシート表記

                #region 店舗データ
                if (receiptDataSet.StoreTable.Rows.Count == 0)
                {
                    var store = receiptDataSet.StoreTable.NewStoreTableRow();
                    store.Logo              = (byte[])row["Logo"];
                    store.CompanyName       = Convert.ToString(row["CompanyName"]);
                    store.StoreName         = Convert.ToString(row["StoreName"]);               // 店舗名
                    store.Address1          = Convert.ToString(row["Address1"]);                // 住所1
                    store.Address2          = Convert.ToString(row["Address2"]);                // 住所2
                    store.TelephoneNO       = Convert.ToString(row["TelephoneNO"]);             // 電話番号
                    store.StoreReceiptPrint = Convert.ToString(row["StoreReceiptPrint"]);       // 店舗レシート表記

                    // メッセージ
                    store.Char3 = Convert.ToString(row["Char3"]);
                    store.Char4 = Convert.ToString(row["Char4"]);
                    //
                    receiptDataSet.StoreTable.Rows.Add(store);
                }
                #endregion // 店舗データ

                #region 販売データ
                var sales = receiptDataSet.SalesTable.NewSalesTableRow();
                sales.StoreReceiptPrint = storeReceiptPrint;                                    // 店舗レシート表記
                sales.StaffReceiptPrint = staffReceiptPrint;                                    // 担当レシート表記
                sales.SalesNO           = salesNO;                                              // 売上番号
                sales.IssueDate         = ConvertDateTime(row["IssueDateTime"], true);          // 発行日
                sales.IssueDateTime     = ConvertDateTime(row["IssueDateTime"], false);         // 発行日時

                // 再発行日時
                var reIssueDateTime = ConvertDateTime(row["ReIssueDateTime"], false);
                sales.ReIssueDateTime = string.IsNullOrWhiteSpace(reIssueDateTime) ? null : reIssueDateTime + "   再発行";

                sales.JanCD = Convert.ToString(row["JanCD"]);                                   // JANCD
                var kakaku = ConvertDecimal(row["Kakaku"]);                                     // 価格

                //数量が0の場合は1として処理、その場合、単価は価格を割り当てる
                var salesSU = ConvertDecimal(row["SalesSU"]);
                if (string.IsNullOrWhiteSpace(salesSU))
                {
                    sales.SalesSU        = "1";                                                 // 数量
                    sales.SalesUnitPrice = kakaku;                                              // 単価
                }
                else
                {
                    sales.SalesSU        = salesSU;                                             // 数量
                    sales.SalesUnitPrice = @"@" + ConvertDecimal(row["SalesUnitPrice"]);        // 単価
                }

                sales.SalesGaku    = kakaku;                                                    // 価格
                sales.SalesTax     = ConvertDecimal(row["SalesTax"]);                           // 売上消費税額
                sales.SalesTaxRate = ConvertDecimal(row["SalesTaxRate"]) == "8" ? "*" : "";     // 税率
                sales.TotalGaku    = ConvertDecimal(row["TotalGaku"]);                          // 販売合計額

                // 商品名
                var encoding = System.Text.Encoding.GetEncoding("Shift_JIS");

                var    skuShortName   = Convert.ToString(row["SKUShortName"]);
                byte[] skuShortNameBT = encoding.GetBytes(skuShortName);
                if (skuShortNameBT.Length < SKU_SHORTNAME_LENGTH)
                {
                    sales.SKUShortName1 = skuShortName;
                    sales.SKUShortName2 = "";
                }
                else
                {
                    sales.SKUShortName1 = encoding.GetString(skuShortNameBT, 0, SKU_SHORTNAME_LENGTH);
                    sales.SKUShortName2 = encoding.GetString(skuShortNameBT, SKU_SHORTNAME_LENGTH, skuShortNameBT.Length - SKU_SHORTNAME_LENGTH);
                }

                #region 合計データ
                sales.SumSalesSU       = ConvertDecimal(row["SumSalesSU"]);       // 小計数量
                sales.Subtotal         = ConvertDecimal(row["Subtotal"]);         // 小計金額
                sales.TargetAmount8    = ConvertDecimal(row["TargetAmount8"]);    // 消費税対象額8%
                sales.ConsumptionTax8  = ConvertDecimal(row["ConsumptionTax8"]);  // 内消費税等8%
                sales.TargetAmount10   = ConvertDecimal(row["TargetAmount10"]);   // 消費税対象額10%
                sales.ConsumptionTax10 = ConvertDecimal(row["ConsumptionTax10"]); // 内消費税等10%
                sales.Total            = ConvertDecimal(row["Total"]);            // 合計
                #endregion                                                        // 合計データ

                #region 支払方法
                sales.PaymentName1    = Convert.ToString(row["PaymentName1"]);  // 支払方法名1
                sales.PaymentAmount1  = ConvertDecimal(row["AmountPay1"]);      // 支払方法額1
                sales.PaymentName2    = Convert.ToString(row["PaymentName2"]);  // 支払方法名2
                sales.PaymentAmount2  = ConvertDecimal(row["AmountPay2"]);      // 支払方法額2
                sales.PaymentName3    = Convert.ToString(row["PaymentName3"]);  // 支払方法名3
                sales.PaymentAmount3  = ConvertDecimal(row["AmountPay3"]);      // 支払方法額3
                sales.PaymentName4    = Convert.ToString(row["PaymentName4"]);  // 支払方法名4
                sales.PaymentAmount4  = ConvertDecimal(row["AmountPay4"]);      // 支払方法額4
                sales.PaymentName5    = Convert.ToString(row["PaymentName5"]);  // 支払方法名5
                sales.PaymentAmount5  = ConvertDecimal(row["AmountPay5"]);      // 支払方法額5
                sales.PaymentName6    = Convert.ToString(row["PaymentName6"]);  // 支払方法名6
                sales.PaymentAmount6  = ConvertDecimal(row["AmountPay6"]);      // 支払方法額6
                sales.PaymentName7    = Convert.ToString(row["PaymentName7"]);  // 支払方法名7
                sales.PaymentAmount7  = ConvertDecimal(row["AmountPay7"]);      // 支払方法額7
                sales.PaymentName8    = Convert.ToString(row["PaymentName8"]);  // 支払方法名8
                sales.PaymentAmount8  = ConvertDecimal(row["AmountPay8"]);      // 支払方法額8
                sales.PaymentName9    = Convert.ToString(row["PaymentName9"]);  // 支払方法名9
                sales.PaymentAmount9  = ConvertDecimal(row["AmountPay9"]);      // 支払方法額9
                sales.PaymentName10   = Convert.ToString(row["PaymentName10"]); // 支払方法名10
                sales.PaymentAmount10 = ConvertDecimal(row["AmountPay10"]);     // 支払方法額10
                #endregion                                                      // 支払方法

                #region お釣りデータ
                sales.Refund            = ConvertDecimal(row["Refund"]);            // 釣銭
                sales.SalesLastPoint    = ConvertDecimal(row["SalesLastPoint"]);    // 今回ポイント
                sales.CustomerLastPoint = ConvertDecimal(row["CustomerLastPoint"]); // 合計ポイント
                sales.CustomerLastPoint = string.IsNullOrWhiteSpace(sales.CustomerLastPoint) ? "0" : sales.CustomerLastPoint;
                #endregion                                                          // お釣りデータ

                #endregion                                                          // 販売データ

                receiptDataSet.SalesTable.Rows.Add(sales);
            }

            var report = new TempoRegiRyousyuusyo_Receipt();
            report.SetDataSource(receiptDataSet);
            report.Refresh();
            report.PrintOptions.PrinterName = StorePrinterName;
            report.PrintToPrinter(0, false, 0, 0);

            // 発行済更新、ログ更新
            bl.D_UpdateDepositHistory(txtSalesNO.Text, true, InOperatorCD, InProgramID, InPcID);
        }